/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.elecciones.Validador;

import com.elecciones.Beans.candidato;
import com.elecciones.Beans.voto;
import java.util.ArrayList;
import java.util.Arrays;

/**
 *
 * @author open12
 */
public class validadorGramatica {

  private String codigo;
  private String resultado;
  private candidato candi;
  private voto vot;

  public validadorGramatica(String codigo) {
    this.codigo = codigo;
  }

  public validadorGramatica() {
  }

  public String getCodigo() {
    return codigo;
  }

  public void setCodigo(String codigo) {
    this.codigo = codigo;
  }

  public String getResultado() {
    return resultado;
  }

  public void validar() {
    ArrayList<String> vBloques = new ArrayList(Arrays.asList(codigo.split("creacion")));
    for (int i = 0; i < vBloques.size(); i++) {
      ArrayList<String> vConceptos = new ArrayList(Arrays.asList(vBloques.get(i).split("\r")));
      int nTipoConcepto = 100;
      for (int j = 0; j < vConceptos.size(); j++) {
        String entidad = vConceptos.get(j);
        if (j == 0) {
          nTipoConcepto = numeroConcepto(entidad);
        } else {
          switch (nTipoConcepto) {
            case 0:

              resultado += "Error el concepto: " + entidad + " no existe\n";
              break;
            case 1:

              break;
            case 2:
              break;
          }
        }
      }
    }
  }

  public int numeroConcepto(String concepto) {
    int nConcepto = 0;
    if (concepto.equals("candidato")) {
      nConcepto = 1;
    } else if (concepto.equals("voto")) {
      nConcepto = 2;
    }
    return nConcepto;
  }

  public ArrayList<String> validacionAtributosPorConcepto(int nEntidad, String entidad) {
    ArrayList<String> vAtributoValor = new ArrayList<String>();
    ArrayList<String> vAtributos = new ArrayList(Arrays.asList(entidad.split("=")));
    switch (nEntidad) {
      case 1:
        if (vAtributos.get(0).equals("numerotarjeton")) {
          candi.setId(Integer.parseInt(vAtributos.get(1)));
        } else if (vAtributos.get(0).equals("nombre")) {
          candi.setNombre(vAtributos.get(1));
        } else if (vAtributos.get(0).equals("apellido")) {
          candi.setApellido(vAtributos.get(1));
        } else if (vAtributos.get(0).equals("identificacion")) {
          candi.setIdentificacion(vAtributos.get(1));
        } else if (vAtributos.get(0).equals("partidopolitico")) {
          candi.setPartidoPolitico(vAtributos.get(1));
        } else if (vAtributos.get(0).equals("genero")) {
          candi.setGenero(vAtributos.get(1));
        } else {
          this.resultado += "Error el Atributo: " + vAtributos.get(0) + " no existe para el Candidato";
        }
        break;
      case 2:
        if (vAtributos.get(0).equals("genero")) {
        } else if (vAtributos.get(0).equals("ciudad")) {
          vot.setCiudad(vAtributos.get(1));
        } else if (vAtributos.get(0).equals("votopor")) {
          vot.setIdCandidato(Integer.parseInt(vAtributos.get(1)));
        } else if (vAtributos.get(0).equals("genero")) {
          vot.setGenero(vAtributos.get(1));
        }
        break;
    }
    return vAtributoValor;
  }
}
